package com.night.icm.service.business.mapper;

import com.night.icm.model.business.ConsolidatedResultsDTO;
import com.night.icm.persistence.business.entity.ConsolidatedResults;
import org.mapstruct.IterableMapping;
import org.mapstruct.Mapper;
import org.mapstruct.Named;
import org.mapstruct.ReportingPolicy;

import java.util.List;

/**
 * ConsolidatedResultsMapper
 *
 * @author Liao ZhiYong
 * @date 2020/4/1
 */
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface ConsolidatedResultsMapper {
    /**
     * DTO转实体
     *
     * @param dto DTO
     * @return 实体
     */
    ConsolidatedResults toEntity(ConsolidatedResultsDTO dto);

    /**
     * 实体转DTO--供findById使用
     *
     * @param entity 实体
     * @return DTO
     */
    ConsolidatedResultsDTO toDTO(ConsolidatedResults entity);

    /**
     * 实体转DTO--供分页查询使用
     *
     * @param save 实体
     * @return DTO
     */
    @Named("toDtoByPage")
    ConsolidatedResultsDTO toDtoByPage(ConsolidatedResults save);

    /**
     * 实体集转为DTO集
     *
     * @param entities 实体集
     * @return DTO集
     */
    @IterableMapping(qualifiedByName = "toDtoByPage")
    List<ConsolidatedResultsDTO> toList(List<ConsolidatedResults> entities);
}
